package ve.usb.crm.hibernate;

import java.util.HashSet;
import java.util.Set;
import ve.usb.cohesion.runtime.LocalDate;

public class Proyecto implements java.io.Serializable, ve.usb.cohesion.runtime.Auditable {

    /** Creates a new instance of Proyecto */
    public Proyecto() {}
    
    /**
     * Holds value of property id.
     */
    private Long id;

    /**
     * Getter for property id.
     * @return Value of property id.
     */
    public Long getId() {
        return this.id;
    }

    /**
     * Holds value of property idProyecto.
     */
    private long idProyecto;

    /**
     * Getter for property idProyecto.
     * @return Value of property idProyecto.
     */
    public long getIdProyecto() {
        return this.idProyecto;
    }

    /**
     * Setter for property idProyecto.
     * @param idProyecto New value of property idProyecto.
     */
    public void setIdProyecto(long idProyecto) {
        this.id = this.idProyecto = idProyecto;
    }

    /**
     * Holds value of property fechaInicioContrato.
     */
    private java.util.Date fechaInicioContrato;

    /**
     * Getter for property fechaInicioContrato.
     * @return Value of property fechaInicioContrato.
     */
    public java.util.Date getFechaInicioContrato() {
        return this.fechaInicioContrato;
    }

    /**
     * Setter for property fechaInicioContrato.
     * @param fechaInicioContrato New value of property fechaInicioContrato.
     */
    public void setFechaInicioContrato(java.util.Date fechaInicioContrato) {
        if (fechaInicioContrato==null || fechaInicioContrato instanceof LocalDate)
            this.fechaInicioContrato = fechaInicioContrato;
        else this.fechaInicioContrato = new LocalDate(fechaInicioContrato);
    }

    /**
     * Holds value of property duracion.
     */
    private int duracion;

    /**
     * Getter for property duracion.
     * @return Value of property duracion.
     */
    public int getDuracion() {
        return this.duracion;
    }

    /**
     * Setter for property duracion.
     * @param duracion New value of property duracion.
     */
    public void setDuracion(int duracion) {
        this.duracion = duracion;
    }

    /**
     * Holds value of property avisoDeVencimiento.
     */
    private java.util.Date avisoDeVencimiento;

    /**
     * Getter for property avisoDeVencimiento.
     * @return Value of property avisoDeVencimiento.
     */
    public java.util.Date getAvisoDeVencimiento() {
        return this.avisoDeVencimiento;
    }

    /**
     * Setter for property avisoDeVencimiento.
     * @param avisoDeVencimiento New value of property avisoDeVencimiento.
     */
    public void setAvisoDeVencimiento(java.util.Date avisoDeVencimiento) {
        if (avisoDeVencimiento==null || avisoDeVencimiento instanceof LocalDate)
            this.avisoDeVencimiento = avisoDeVencimiento;
        else this.avisoDeVencimiento = new LocalDate(avisoDeVencimiento);
    }

    /**
     * Holds value of property calleFacturacion.
     */
    private String calleFacturacion = "";

    /**
     * Getter for property calleFacturacion.
     * @return Value of property calleFacturacion.
     */
    public String getCalleFacturacion() {
        return this.calleFacturacion;
    }

    /**
     * Setter for property calleFacturacion.
     * @param calleFacturacion New value of property calleFacturacion.
     */
    public void setCalleFacturacion(String calleFacturacion) {
        this.calleFacturacion = calleFacturacion;
    }

    /**
     * Holds value of property ciudadFacturacion.
     */
    private String ciudadFacturacion = "";

    /**
     * Getter for property ciudadFacturacion.
     * @return Value of property ciudadFacturacion.
     */
    public String getCiudadFacturacion() {
        return this.ciudadFacturacion;
    }

    /**
     * Setter for property ciudadFacturacion.
     * @param ciudadFacturacion New value of property ciudadFacturacion.
     */
    public void setCiudadFacturacion(String ciudadFacturacion) {
        this.ciudadFacturacion = ciudadFacturacion;
    }

    /**
     * Holds value of property estadoFacturacion.
     */
    private String estadoFacturacion = "";

    /**
     * Getter for property estadoFacturacion.
     * @return Value of property estadoFacturacion.
     */
    public String getEstadoFacturacion() {
        return this.estadoFacturacion;
    }

    /**
     * Setter for property estadoFacturacion.
     * @param estadoFacturacion New value of property estadoFacturacion.
     */
    public void setEstadoFacturacion(String estadoFacturacion) {
        this.estadoFacturacion = estadoFacturacion;
    }

    /**
     * Holds value of property paisFacturacion.
     */
    private String paisFacturacion = "";

    /**
     * Getter for property paisFacturacion.
     * @return Value of property paisFacturacion.
     */
    public String getPaisFacturacion() {
        return this.paisFacturacion;
    }

    /**
     * Setter for property paisFacturacion.
     * @param paisFacturacion New value of property paisFacturacion.
     */
    public void setPaisFacturacion(String paisFacturacion) {
        this.paisFacturacion = paisFacturacion;
    }

    /**
     * Holds value of property codigoPostalFacturacion.
     */
    private int codigoPostalFacturacion;

    /**
     * Getter for property codigoPostalFacturacion.
     * @return Value of property codigoPostalFacturacion.
     */
    public int getCodigoPostalFacturacion() {
        return this.codigoPostalFacturacion;
    }

    /**
     * Setter for property codigoPostalFacturacion.
     * @param codigoPostalFacturacion New value of property codigoPostalFacturacion.
     */
    public void setCodigoPostalFacturacion(int codigoPostalFacturacion) {
        this.codigoPostalFacturacion = codigoPostalFacturacion;
    }

    /**
     * Holds value of property calleEnvio.
     */
    private String calleEnvio = "";

    /**
     * Getter for property calleEnvio.
     * @return Value of property calleEnvio.
     */
    public String getCalleEnvio() {
        return this.calleEnvio;
    }

    /**
     * Setter for property calleEnvio.
     * @param calleEnvio New value of property calleEnvio.
     */
    public void setCalleEnvio(String calleEnvio) {
        this.calleEnvio = calleEnvio;
    }

    /**
     * Holds value of property ciudadEnvio.
     */
    private String ciudadEnvio = "";

    /**
     * Getter for property ciudadEnvio.
     * @return Value of property ciudadEnvio.
     */
    public String getCiudadEnvio() {
        return this.ciudadEnvio;
    }

    /**
     * Setter for property ciudadEnvio.
     * @param ciudadEnvio New value of property ciudadEnvio.
     */
    public void setCiudadEnvio(String ciudadEnvio) {
        this.ciudadEnvio = ciudadEnvio;
    }

    /**
     * Holds value of property paisEnvio.
     */
    private String paisEnvio = "";

    /**
     * Getter for property paisEnvio.
     * @return Value of property paisEnvio.
     */
    public String getPaisEnvio() {
        return this.paisEnvio;
    }

    /**
     * Setter for property paisEnvio.
     * @param paisEnvio New value of property paisEnvio.
     */
    public void setPaisEnvio(String paisEnvio) {
        this.paisEnvio = paisEnvio;
    }

    /**
     * Holds value of property codigoPostalEnvio.
     */
    private int codigoPostalEnvio;

    /**
     * Getter for property codigoPostalEnvio.
     * @return Value of property codigoPostalEnvio.
     */
    public int getCodigoPostalEnvio() {
        return this.codigoPostalEnvio;
    }

    /**
     * Setter for property codigoPostalEnvio.
     * @param codigoPostalEnvio New value of property codigoPostalEnvio.
     */
    public void setCodigoPostalEnvio(int codigoPostalEnvio) {
        this.codigoPostalEnvio = codigoPostalEnvio;
    }

    /**
     * Holds value of property condicionesEspeciales.
     */
    private String condicionesEspeciales = "";

    /**
     * Getter for property condicionesEspeciales.
     * @return Value of property condicionesEspeciales.
     */
    public String getCondicionesEspeciales() {
        return this.condicionesEspeciales;
    }

    /**
     * Setter for property condicionesEspeciales.
     * @param condicionesEspeciales New value of property condicionesEspeciales.
     */
    public void setCondicionesEspeciales(String condicionesEspeciales) {
        this.condicionesEspeciales = condicionesEspeciales;
    }

    /**
     * Holds value of property firmadoCliente.
     */
    private boolean firmadoCliente;

    /**
     * Getter for property firmadoCliente.
     * @return Value of property firmadoCliente.
     */
    public boolean getFirmadoCliente() {
        return this.firmadoCliente;
    }

    /**
     * Setter for property firmadoCliente.
     * @param firmadoCliente New value of property firmadoCliente.
     */
    public void setFirmadoCliente(boolean firmadoCliente) {
        this.firmadoCliente = firmadoCliente;
    }

    /**
     * Holds value of property tituloFirma.
     */
    private String tituloFirma = "";

    /**
     * Getter for property tituloFirma.
     * @return Value of property tituloFirma.
     */
    public String getTituloFirma() {
        return this.tituloFirma;
    }

    /**
     * Setter for property tituloFirma.
     * @param tituloFirma New value of property tituloFirma.
     */
    public void setTituloFirma(String tituloFirma) {
        this.tituloFirma = tituloFirma;
    }

    /**
     * Holds value of property fechaFirma.
     */
    private java.util.Date fechaFirma;

    /**
     * Getter for property fechaFirma.
     * @return Value of property fechaFirma.
     */
    public java.util.Date getFechaFirma() {
        return this.fechaFirma;
    }

    /**
     * Setter for property fechaFirma.
     * @param fechaFirma New value of property fechaFirma.
     */
    public void setFechaFirma(java.util.Date fechaFirma) {
        if (fechaFirma==null || fechaFirma instanceof LocalDate)
            this.fechaFirma = fechaFirma;
        else this.fechaFirma = new LocalDate(fechaFirma);
    }

    /**
     * Holds value of property firmadoCompanya.
     */
    private boolean firmadoCompanya;

    /**
     * Getter for property firmadoCompanya.
     * @return Value of property firmadoCompanya.
     */
    public boolean getFirmadoCompanya() {
        return this.firmadoCompanya;
    }

    /**
     * Setter for property firmadoCompanya.
     * @param firmadoCompanya New value of property firmadoCompanya.
     */
    public void setFirmadoCompanya(boolean firmadoCompanya) {
        this.firmadoCompanya = firmadoCompanya;
    }

    /**
     * Holds value of property fechaFirmaCompanya.
     */
    private java.util.Date fechaFirmaCompanya;

    /**
     * Getter for property fechaFirmaCompanya.
     * @return Value of property fechaFirmaCompanya.
     */
    public java.util.Date getFechaFirmaCompanya() {
        return this.fechaFirmaCompanya;
    }

    /**
     * Setter for property fechaFirmaCompanya.
     * @param fechaFirmaCompanya New value of property fechaFirmaCompanya.
     */
    public void setFechaFirmaCompanya(java.util.Date fechaFirmaCompanya) {
        if (fechaFirmaCompanya==null || fechaFirmaCompanya instanceof LocalDate)
            this.fechaFirmaCompanya = fechaFirmaCompanya;
        else this.fechaFirmaCompanya = new LocalDate(fechaFirmaCompanya);
    }

    /**
     * Holds value of property respProyecto.
     */
    private Personal respProyecto;

    /**
     * Getter for property respProyecto.
     * @return Value of property respProyecto.
     */
    public Personal getRespProyecto() {
        return this.respProyecto;
    }

    /**
     * Setter for property respProyecto.
     * @param respProyecto New value of property respProyecto.
     */
    public void setRespProyecto(Personal respProyecto) {
        this.respProyecto = respProyecto;
    }
    /**
     * Holds value of property descripcion.
     */
    private String descripcion = "";

    /**
     * Getter for property descripcion.
     * @return Value of property descripcion.
     */
    public String getDescripcion() {
        return this.descripcion;
    }

    /**
     * Setter for property descripcion.
     * @param descripcion New value of property descripcion.
     */
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    /**
     * Holds value of property porcentajeCompletado.
     */
    private double porcentajeCompletado;

    /**
     * Getter for property porcentajeCompletado.
     * @return Value of property porcentajeCompletado.
     */
    public double getPorcentajeCompletado() {
        return this.porcentajeCompletado;
    }

    /**
     * Setter for property porcentajeCompletado.
     * @param porcentajeCompletado New value of property porcentajeCompletado.
     */
    public void setPorcentajeCompletado(double porcentajeCompletado) {
        this.porcentajeCompletado = porcentajeCompletado;
    }

    /**
     * Holds value of property nombre.
     */
    private String nombre = "";

    /**
     * Getter for property nombre.
     * @return Value of property nombre.
     */
    public String getNombre() {
        return this.nombre;
    }

    /**
     * Setter for property nombre.
     * @param nombre New value of property nombre.
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * Holds value of property estadoEnvio.
     */
    private String estadoEnvio = "";

    /**
     * Getter for property estadoEnvio.
     * @return Value of property estadoEnvio.
     */
    public String getEstadoEnvio() {
        return this.estadoEnvio;
    }

    /**
     * Setter for property estadoEnvio.
     * @param estadoEnvio New value of property estadoEnvio.
     */
    public void setEstadoEnvio(String estadoEnvio) {
        this.estadoEnvio = estadoEnvio;
    }

    /**
     * Holds value of property esActivo.
     */
    private boolean esActivo;

    /**
     * Getter for property esActivo.
     * @return Value of property esActivo.
     */
    public boolean getEsActivo() {
        return this.esActivo;
    }

    /**
     * Setter for property contactoUsuario.
     * @param esActivo New value of property esActivo.
     */
    public void setEsActivo(boolean esActivo) {
        this.esActivo = esActivo;
    }

    /**
     * Holds value of property cuenta.
     */
    private Cuenta cuenta;

    /**
     * Getter for property cuenta.
     * @return Value of property cuenta.
     */
    public Cuenta getCuenta() {
        return this.cuenta;
    }

    /**
     * Setter for property cuenta.
     * @param cuenta New value of property cuenta.
     */
    public void setCuenta(Cuenta cuenta) {
        this.cuenta = cuenta;
    }

    /**
     * Holds value of property oportunidad.
     */
    private Oportunidad oportunidad;

    /**
     * Getter for property oportunidad.
     * @return Value of property oportunidad.
     */
    public Oportunidad getOportunidad() {
        return this.oportunidad;
    }

    /**
     * Setter for property oportunidad.
     * @param oportunidad New value of property oportunidad.
     */
    public void setOportunidad(Oportunidad oportunidad) {
        this.oportunidad = oportunidad;
    }

    public String toString() {
        return "<Proyecto id='C" + this.id +
      //idProyecto
      "\" fechaInicioContrato =\"" + fechaInicioContrato +
      "\" duracion =\"" + duracion +
      "\" avisoDeVencimiento =\"" + avisoDeVencimiento +
      "\" calleFacturacion =\"" + calleFacturacion +
      "\" ciudadFacturacion =\"" + ciudadFacturacion +
      "\" estadoFacturacion =\"" + estadoFacturacion +
      "\" paisFacturacion =\"" + paisFacturacion +
      "\" codigoPostalFacturacion =\"" + codigoPostalFacturacion +
      "\" calleEnvio =\"" + calleEnvio +
      "\" ciudadEnvio =\"" + ciudadEnvio +
      "\" paisEnvio =\"" + paisEnvio +
      "\" codigoPostalEnvio =\"" + codigoPostalEnvio +
      "\" condicionesEspeciales =\"" + condicionesEspeciales +
      "\" firmadoCliente =\"" + firmadoCliente +
      "\" tituloFirma =\"" + tituloFirma +
      "\" fechaFirma =\"" + fechaFirma +
      "\" firmadoCompanya =\"" + firmadoCompanya +
      "\" fechaFirmaCompanya =\"" + fechaFirmaCompanya +
        ((respProyecto==null) ? "" : "\" respProyecto =\"C" + respProyecto.getId()) +

      "\" descripcion =\"" + descripcion +
      "\" porcentajeCompletado =\"" + porcentajeCompletado +
      "\" nombre =\"" + nombre +
      "\" estadoEnvio =\"" + estadoEnvio +

        "'/>";
    }

}